package movie.view;

import java.util.*;
import movie.service.MovieService;
import movie.util.ScannerUtil;

/**
 * 视图层
 * @author 王荣
 *
 */
public class MovieView {
	//创建MovieService对象
	MovieService mc = new MovieService();
	
	/**
	 * 显示主菜单的方法
	 */
	public void mainMenu(){
		while(true){
			System.out.println("\n-----------豆瓣网-----------\n");
			System.out.println("\t 1 影片管理");
			System.out.println("\t 2 查看所有影片");
			System.out.println("\t 3 退出");
			System.out.print("请输入(1-3)：");
			
			//调用键盘录入字符方法
			char c = ScannerUtil.readMenuSelection(3);
			
			//调用跳转的方法
			mainMenuJump(c);
		}	
	}

	
	/**
	 * 主菜单跳转方法
	 * @param c 键盘录入的字符
	 */
	public void mainMenuJump(char c) {
		switch(c){
		case '1':
			//调用显示影片管理菜单的方法
			manageMenu();
			break;
		case '2':
			//调用显示查看所有影片菜单的方法
			moviesMenu();
			break;
		default:
			System.out.println("是否退出？(请输入Y或N)");
			if(ScannerUtil.readYN() == 'Y')
				System.exit(0);//退出当前程序
		}
	}


	/**
	 * 显示影片管理菜单的方法
	 */
	public void manageMenu(){
		while(true){
			System.out.println("\n---------影片管理系统---------\n");
			System.out.println("\t 1 上传影片");
			System.out.println("\t 2 删除影片");
			System.out.println("\t 3 修改影片信息");
			System.out.println("\t 4 返回上一级");
			System.out.print("请输入(1-4)：");
			
			//调用键盘录入字符方法
			char c = ScannerUtil.readMenuSelection(4);
			switch(c){
			case '1':
				mc.addMovie();
				break;
			case '2':
				mc.delMovie();
				break;
			case '3':
				mc.modifyMovie();
				break;
			default:
				return;
			}
		}
	}


	/**
	 * 显示查看所有影片菜单的方法
	 */
	public void moviesMenu(){
		while(true){
			System.out.println("\n-----------影片列表-----------\n");
			mc.showMovies();
			System.out.println("\t 1 搜索");
			System.out.println("\t 2 排行");
			System.out.println("\t 3 返回上一级");
			System.out.print("请输入(1-3)：");
			
			//调用键盘录入字符方法
			char c = ScannerUtil.readMenuSelection(3);
			switch(c){
			case '1':
				mc.search();
				break;
			case '2':
				rankingMenu();
				break;
			default:
				return;
			}
		}
	}

	
	/**
	 * 显示影片排行菜单的方法
	 */
	public void rankingMenu(){
		System.out.println("\n-----------影片排行-----------\n");
		System.out.println("\t 1 按点击率排序");
		System.out.println("\t 2 按推荐率排序");
		System.out.println("\t 3 按上映时间排序");
		System.out.println("\t 4 返回上一级");
		System.out.print("请输入(1-4)：");
		
		//调用键盘录入字符方法
		char c = ScannerUtil.readMenuSelection(4);
		switch(c){
		case '1':
			//调用按点击率排序方法
			mc.clickRateSort();
			break;
		case '2':
			//调用按推荐率排序方法
			mc.scoreSort();
			break;
		case '3':
			//调用按上映时间排序方法
			mc.dateSort();
			break;
		default:
			return;
		}	
		
		//调用显示排序后功能的方法
		mc.showSort();
		
	}
	
	
	//测试方法
	public static void main(String[] args) {
		MovieView mv =new MovieView();
		mv.mainMenu();
	}

}
